/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package MiniProjet.gestionnaires;

import MiniProjet.modeles.Utilisateur;
import java.util.Collection;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author SaLaH
 */
@Stateless
public class GestionnaireUtilisateurs {
    // Ici injection de code : on n'initialise pas. L'entity manager sera créé
    // à partir du contenu de persistence.xml
    @PersistenceContext
    private EntityManager em;

    public void creerUtilisateursDeTest() {
        creeUtilisateur("mouafik", "salah", "smouafik@hotmail.fr","123456",false);
        creeUtilisateur("mouafik", "salah", "admin@admin.fr","123456",true);
   
    }

    public Utilisateur creeUtilisateur(String nom, String prenom, String email, String password, boolean admin) {
        Utilisateur u = new Utilisateur(nom, prenom, email, password, admin);
        em.persist(u);
        return u;
    }


     public  Utilisateur getUtilisateurByEmail(String mail){

         Utilisateur user = null;
         try{

          Query q = em.createQuery("select u from Utilisateur u where u.email = :mail");
          q.setParameter("mail", mail);
          user = (Utilisateur) q.getSingleResult();

         }catch (NoResultException e) {
            System.out.println("Ce client n'existe pas.");
        }
        return user;

        
    }

      public  Utilisateur getUtilisateurById(int idUser){

           Utilisateur user = null;
         try{

         // Exécution d'une requête équivalente à un select *
       Query q = em.createQuery("select u from Utilisateur u where u.id = :id");
       q.setParameter("id", idUser);
       user = (Utilisateur) q.getSingleResult();

         }catch (NoResultException e) {
            System.out.println("Ce client n'existe pas.");
        }
        return user;

    }



  

    public Collection<Utilisateur> getAllUsers() {
        // Exécution d'une requête équivalente à un select *
        Query q = em.createQuery("select u from Utilisateur u");
        return q.getResultList();
    }
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
}